0%

(ICCV 2017 Best Paper) Mask r-cnn

Keyword [Mask R-CNN] [RoI Align]

He K, Gkioxari G, Dollár P, et al. Mask r-cnn[C]//Proceedings of the IEEE international conference on computer vision. 2017: 2961-2969.


1. Overview


论文提出一个用于object instance segmentation通用框架Mask R-CNN. 该框架在Faster R-CNN的基础上

  • 并行增加了一个预测对象mask的分支(全卷积网络,对每个RoI进行预测)
  • 将RoI Pooling操作改为RoI Align操作(将量化操作改为双线性插值操作)


Mask R-CNN 5fps on GPU,论文进行object detection、instance segmentation和human pose estimation实验。

1.1. 分割任务

  • Semantic segmentation(pixel labeling task).对每个像素点进行类间分类,不区分类内实例(例如图像中两只狗的像素点都分类为狗,不区分两只狗的像素点)
  • Instance segmentation(object detection task). 检测图像中每个对象,并对每个对象实例进行分割


1.2. RoI Pooling的量化操作

  • Faster R-CNN主要用于物体检测任务,其中的RoI Pooling过程存在两次量化
    • 浮点数RoI缩小feature_stride后,对应到共享特征图上的边界量化
    • RoI对应特征图进行RoI Pooling操作时,划分H*W区域的边界量化
  • 量化操作会导致共享特征图上的RoI与输入图像之间存在错位问题,对分类和检测任务的影响并不大,但是对像素级别mask预测的影响较大(输入与输出之间并没有pixel-to-pixel alignment)。

1.3. RoI Align操作

  • 将RoI Pooling中的量化操作改为双线性插值操作,RoI Align是提高准确度的关键操作。
  • 考虑
    • Scale (feature_stride)为16的共享特征图
    • 相对于输入图像的预测RoI x
  • 量化操作
    • 计算RoI相对于共享特征图的点坐标x/16.0
    • 量化取整数点坐标round(x/16.0)
    • 在共享特征图上采样该整数点的值
  • Align操作
    • 计算RoI相对于共享特征图的点坐标x/16.0
    • 在共享特征图上使用双线性插值采样该小数点的值

2. Mask R-CNN


Mask R-CNN分为两个阶段

  • RPN预测RoIs
  • 并行预测每个RoI的box (class, box offset)和binary mask. 看做两个分支

2.1. 解耦mask与class

  • FCN. class预测包含在mask预测中,存在类间竞争问题(per-pixel softmax, 多类别交叉熵)。即mask中每个像素点是一个k维softmax向量(或理解为对每个RoI预测一张mask,像素点分为k类型)
  • Mask R-CNN. class预测从mask预测中分离出来,不存在类间竞争问题(per-pixel sigmoid, binary loss)。即mask中每个像素点是k个sigmoid值(或理解为对每个RoI预测k张mask,每张mask中的像素点分为background与foreground两种类型)

2.2. Multi-task Loss

对于每个RoI,有3个loss

  • L_{cls}. log loss
  • L_{box}. smooth L1
  • L_{mask}. binary cross entropy loss, 只计算对应类别的mask loss.

2.3. 网络结构

  • Backbone. ResNet, ResNeXt, FPN
  • Head. cls, box, mask


2.4. 细节

  • 训练

    • RoI与gt box的IoU大于等于0.5为正例,其余为负例
    • 采样RoI正负比例1:3
    • Mask target为RoI与gt mask的交集
    • shorter side 800
  • 测试 (与训练阶段的区别)

    • 对预测的box进行NMS过滤
    • 选择top 100个预测box进行mask预测

3. Instance Segmentation


3.1. 实验结果



3.2. Ablations

class-agnostic mask (29.7AP,m*m mask)与class-specific mask(30.3AP,m*m mask per class)效果相似。



3.3. 边界框检测

使用mask分支的Mask R-CNN比没有使用mask分支的Faster R-CNN&RoI Align效果好




4. Human Pose Estimation


考虑身体部位共k个关键点(肩膀、肘等),则对每个RoI预测k张mask,每张mask中只有一个像素点为foreground,因此对m*m mask做softmax操作.



4.1. 实验结果





5. Cityscape数据集扩展实验